//
//  main.m
//  NSDate
//
//  Created by wenjim on 17/10/25.
//  Copyright © 2017年 WenJim. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    
    
    // 1.NSDate创建和基本概念
    /*
    // 只要是通过date方法创建的时间对象，对象中就保存了当前的时间
    NSDate * nowTime = [NSDate date];
    // 当前时间
    NSLog(@"nowTime = %@",nowTime);
    
    // 在date 的基础上追加多少秒
    NSDate * date = [nowTime dateByAddingTimeInterval:8 * 60 * 60];
    NSLog(@"date = %@",date);
    
    
    // 1.1 获取当前所处的时区
    NSTimeZone * zone = [NSTimeZone systemTimeZone];
    // 1.2 获取当前时区和 指定时间 的时间差
    NSInteger seconds =[zone secondsFromGMTForDate:nowTime];
//    NSLog(@"seconds = %lu",seconds);
    
    NSDate * newDate = [nowTime dateByAddingTimeInterval:seconds];
    NSLog(@"newDate = %@",newDate);
     */
    
    
    
    // 2. 时间格式化 NSDate -> NSString
    /*
    // xxxx年xx月xx日  xx小时xx分钟xx秒
    // xxxx/xx/xx xx/xx/xx
    // xx/xx/xxxx xx/xx/xx
    NSDate * now = [NSDate date];
    // 创建一个时间格式化对象
    NSDateFormatter * forMatter = [[NSDateFormatter alloc] init];
    // 告诉时间格式化对象，按照什么样式的格式来格式化时间
//     yyyy 年
//     MM 月
//     dd 日
//     HH 24小时 hh 12小时
//     mm 分钟
//     ss 秒钟
    // Z 时区
//    forMatter.dateFormat = @"yyyy年MM月dd日 HH时mm分ss秒 Z";
    forMatter.dateFormat = @"MM-dd-yyyy hh-mm-ss";
    
    
    // 利用时间格式化对象对时间进行格式化
    NSString * str = [forMatter stringFromDate:now];
    
    NSLog(@"str = %@",str);
     */
    
    // NSString -> NSdate
    NSString * str = @"2017-10-25 20:52:05 +0000";
    NSDateFormatter * forMatter = [[NSDateFormatter alloc] init];
    // 注意：如果是从NSString 格式化为NSDate，那么dateFormat的格式，必须和字符串中的时间格式化一致，否则可能转换失败
    forMatter.dateFormat = @"yyyy-MM-dd HH-mm-ss z";
    NSDate * date = [forMatter dateFromString:str];
    
    NSLog(@"date = %@",date);
    
    
    return 0;
}
